<?php
/**
 * Created by PhpStorm.
 * User: xiangpeng
 * Date: 2016/12/26
 * Time: 14:57
 */

namespace Admin\Controller;


use Common\Controller\AdminController;
use Common\Model\CategoryModel;
use Common\Model\TypeModel;


class CategoryController extends  AdminController
{
    protected $db;
    public function __construct(){
        parent::__construct();//为了不覆盖父级构造方法
        //实例化分类模型
        $this->db= new CategoryModel();
    }
    //2.分类列表方法
    public function cateLists(){
         $cateModelData= $this->db->select();
         //实例化树状类
        $Data= new \Org\Util\Data();
        $cateModelData=$Data->tree($cateModelData,'cname');
        //dd($cateModelData);die;
        //分配模板
        $this->assign('cateModelData',$cateModelData);
        //加载模板
        $this->display();
    }

    /**
     * 添加顶级分类
     */
    public function cateAdd(){
        //1.属性添加方法
        if(IS_POST){
            //获得post数据
            $data=I('post.');
            $this->store($this->db,$data,function(){
                $this->success('顶级分类添加成功',U('cateLists'));die;
            });
        }

        //    //1.1加载模板
        $this->display();

    }

    /**
     * 添加子类
     */
    public function addSonCate(){
        $pid = I('get.cid');
        //dd($pid);DIE;
        if(IS_POST){
            //获得post数据
            $data=I('post.');
            //dd($data);die;
            $this->store($this->db,$data,function(){
                $this->success('子分类添加成功',U('cateLists'));die;
            });
        }
        //获取父级数据 并将父级分类分配到子页面
        $fatherData = $this->db->where("cid={$pid}")->find();
        //dd($fatherData);die;
        //获得所属类型
        $type=(new TypeModel())->select();
        //dd($type);die;
        $this->assign('type',$type);
        $this->assign('fatherData',$fatherData)->display();
    }


    /**
     * 编辑分类
     */
    public function cateEdit(){
        $cid = I('get.cid');
        if(IS_POST){
            //获得post数据
            $data=I('post.');
            //dd($data);die;
            $this->store($this->db,$data,function(){
                $this->success('编辑成功',U('cateLists'));die;
            });
        }
         //echo 333;die;
        //获取旧数据
        $oldData =$this->db->where("cid={$cid}")->find();
        //dd($oldData);die;
        //处理所属分类
        $cateData = $this->db->getCateData($cid);
        //dd($cateData);die;
        $this->assign('oldData',$oldData)->assign('cateData',$cateData)->display();
    }



    /**
     * 删除分类
     */
    public function cateDel(){
        // 检测是否进入该方法
        // echo 2;die ;
        // 获取当前的要编辑的该条的cid
        $cid=I('get.cid');
        // 调用模型里的删除方法
        $res=$this->db->del($cid);
        // 判断是否为真就删除
        if($res)  $this->success('删除成功',U('cateLists'));die;
        // 否就返回错误
        $this->error($this->db->getError());die;
    }





    ////1.分类添加方法  //3.修改方法
    //public function cateAdd(){
    //    //获得要添加的子分类的pid
    //    $pid=I('get.pid');
    //    //dd( $pid);die;
    //    //获得要编辑的id
    //    $cid=I('get.cid');
    //    //执行添加方法
    //    if(IS_POST){
    //        //获得post的数据
    //        $data=I('post.');
    //        if($cid){
    //            $data['cid']=$cid;
    //        }
    //        $this->store( new CategoryModel(),$data,function(){
    //            $this->success('操作成功',U('Category/cateLists'));die;
    //        } );
    //    }
    //
    //    //编辑的获得旧数据
    //    if($cid){
    //        //获得所有旧数据
    //        $filed= (new CategoryModel())->where("cid={$cid}")->find();
    //        //分配数据
    //        //dd($filed);die;
    //        $this->assign('filed',$filed);
    //    }
    //
    //    //添加子分类
    //    if($pid){
    //        $cate=(new CategoryModel())->where("cid={$pid}")->find();
    //        //dd($cate);die;
    //        //分配数据
    //        $this->assign('cate',$cate);
    //    }
    //    //加载模板
    //    $this->display();
    //}
    //
    ////分类的删除
    //public function cateDel(){
    //    //获得要删除的id
    //    $cid=I('get.cid');
    //    if((new CategoryModel())->where("cid={$cid}")->delete()){
    //        //删除成功
    //        $this->success('删除成功');
    //    }else{
    //        //删除失败
    //        $this->error('删除失败');
    //    }
    //
    //}


}